home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Deutsche Edition 1
/
Deutsche Edition 1.iso
/
amok
/
051-060
/
amok52
/
gadgeted
/
txt
/
requester.mod
< prev
next >
Wrap
Text File
|
1993-11-04
|
20KB
|
677 lines
(*----------------------------------------------------------------------
:Program. Requester.mod
:Contents. Aufbau und Verwaltung von Requester-Windows zur Eingabe
:Contents. diverser Daten.
:Author. Hubert Bildstein
:Copyright. Public Domain
:Language. Modula-2
:Translator. M2Amiga V3.3d
:History. V1.0 5.12.1990
----------------------------------------------------------------------*)
IMPLEMENTATION MODULE Requester;
(* Aufbau von Abfrage-Windows für diverse Eingaben *)
FROM SYSTEM IMPORT ADDRESS,ADR;
FROM Arts IMPORT TermProcedure, Assert;
FROM ASCII IMPORT nul;
FROM DataStruct IMPORT BorderType;
FROM Gadgets IMPORT DefineWindow, MakeBoolGadget, GadgetText, GadgetBorder,
MakeStrGadget, ReadStrGadget, SetStrGadget,
PropType, PropTypeSet, MakePropGadget, ReadLongint,
SetLongint, WaitForGadget, ReadPropGadget,
SetPropGadget, DeleteGadget;
FROM Graphics IMPORT jam1,jam2;
FROM Intuition IMPORT WindowPtr,IDCMPFlags,IDCMPFlagSet,ScreenPtr,
NewWindow, WindowFlags, customScreen,
WindowFlagSet, ScreenFlags, ScreenFlagSet,
OpenWindow, CloseWindow,
GadgetPtr, GadgetFlagSet, GadgetFlags,
ActivationFlagSet, ActivationFlags, ActivateGadget,
boolGadget, strGadget, propGadget, IntuiText,
OnGadget,OffGadget, PrintIText;
FROM Menu IMPORT SetMenu, ClearMenu;
CONST GFSet = GadgetFlagSet{};
VAR WPtr : WindowPtr; (* glob. Var. für übergeordneten Screen u. Window *)
SPtr : ScreenPtr;
WPtr1 : WindowPtr; (* Requester-Fenster *)
(*--------------------------------------------------------------------------*)
PROCEDURE SetScreen (Screen : ADDRESS;
Window : ADDRESS);
(* Festlegen des Screens und des Windows, auf denen die Requester
erscheinen sollen *)
BEGIN
WPtr := Window;
SPtr := Screen;
END SetScreen;
(*--------------------------------------------------------------------------*)
PROCEDURE CloseAll;
(* Schließen des Requester-Fensters *)
BEGIN
IF (WPtr1 # NIL) THEN CloseWindow (WPtr1); WPtr1 := NIL END;
END CloseAll;
(*--------------------------------------------------------------------------*)
PROCEDURE InitPropRequest ( Mode : PropTypeSet;
VAR WertX, WertY : LONGINT;
VAR change : BOOLEAN);
(* Abfrage der Schrittweiten für Proportional-Gadget *)
VAR GPtr1, GPtr2, GPtr3, GP : GadgetPtr;
WDef : NewWindow;
class : IDCMPFlagSet;
ID : INTEGER;
ok : BOOLEAN;
BEGIN
(* Menu aus *)
ClearMenu (WPtr);
(* Abfrage-Window aufbauen *)
WITH WDef DO
leftEdge := 100; topEdge := 100; width := 400; height := 40;
detailPen := 0; blockPen := 1;
idcmpFlags := IDCMPFlagSet{gadgetUp,closeWindow};
flags := WindowFlagSet{windowDrag,windowClose,activate};
firstGadget := NIL; checkMark := NIL;
title := ADR("Proportional Gadget:");
screen := SPtr; bitMap := NIL;
type := customScreen;
END; (*WITH*)
WPtr1 := OpenWindow (WDef);
Assert (WPtr1 # NIL,ADR("Error opening Requester-Window"));
DefineWindow (WPtr1);
(* Gadgets einbauen *)
MakeStrGadget (GPtr1,1,280,14,50,8,6,GFSet,
ActivationFlagSet{relVerify,longint},ok);
MakeStrGadget (GPtr2,2,280,28,50,8,6,GFSet,
ActivationFlagSet{relVerify,longint},ok);
MakeBoolGadget (GPtr3,3,340,25,50,10,GFSet,ActivationFlagSet{relVerify},ok);
GadgetBorder (GPtr1,-2,-2,53,11,FALSE,0,0,1);
GadgetBorder (GPtr2,-2,-2,53,11,FALSE,0,0,1);
GadgetBorder (GPtr3,-2,-2,53,13,TRUE,2,1,1);
GadgetText (GPtr1,-250,0,"Number of steps in x-direction",1,0);
GadgetText (GPtr2,-250,0,"Number of steps in y-direction",1,0);
GadgetText (GPtr3,17,1,"OK",1,0);
SetLongint (GPtr1,WertX);
SetLongint (GPtr2,WertY);
(* evtl. nicht benutztes Gadget ausschalten *)
IF NOT (Horiz IN Mode) THEN
OffGadget (GPtr1,WPtr1,NIL)
END; (*IF*)
IF NOT (Vert IN Mode) THEN
OffGadget (GPtr2,WPtr1,NIL)
END; (*IF*)
(* Ein Gadget aktivieren *)
IF (Horiz IN Mode) THEN
ok := ActivateGadget (GPtr1,WPtr1,NIL);
ELSE
ok := ActivateGadget (GPtr2,WPtr1,NIL);
END; (*IF*)
REPEAT
WaitForGadget (class,ID,GP);
IF (ID = 1) AND (Vert IN Mode) THEN
ok := ActivateGadget(GPtr2,WPtr1,NIL)
END;
UNTIL (ID = 3) OR (ID = 2) OR ((ID =1) AND NOT (Vert IN Mode))
OR (closeWindow IN class);
(* Ergebnisse *)
ReadLongint (GPtr1,WertX);
ReadLongint (GPtr2,WertY);
IF (closeWindow IN class) THEN
change := FALSE
ELSE
change := TRUE
END; (*IF*)
DeleteGadget (GPtr1); DeleteGadget (GPtr2); DeleteGadget (GPtr3);
CloseAll;
DefineWindow (WPtr);
SetMenu (WPtr);
END InitPropRequest;
(*--------------------------------------------------------------------------*)
PROCEDURE TextRequest (VAR Text : ARRAY OF CHAR;
VAR FgdCol : INTEGER;
VAR BgdCol : INTEGER;
VAR change : BOOLEAN;
VAR center : BOOLEAN);
(* Abfrage eines Textes mit Farben und Position *)
VAR WDef : NewWindow;
GPtr1,GPtr2 : GadgetPtr;
GPtr3,GPtr4 : GadgetPtr;
GPtr5,GP : GadgetPtr;
ok : BOOLEAN;
class : IDCMPFlagSet;
ID : INTEGER;
f,b : LONGINT;
BEGIN
(* Menu aus *)
ClearMenu (WPtr);
(* Abfrage-Window mit String-Gadget aufbauen *)
WITH WDef DO
leftEdge := 170; topEdge := 100; width := 300; height := 60;
detailPen := 0; blockPen := 1;
idcmpFlags := IDCMPFlagSet{gadgetUp,closeWindow};
flags := WindowFlagSet{windowDrag,windowClose,activate};
firstGadget := NIL; checkMark := NIL;
title := ADR("Set Gadget-Text:");
screen := SPtr; bitMap := NIL;
type := customScreen;
END; (*WITH*)
WPtr1 := OpenWindow (WDef);
Assert (WPtr1 # NIL,ADR("Error opening Requester-Window"));
DefineWindow (WPtr1);
(* Abfrage-Gadgets einbauen: *)
(* Text-Gadget *)
MakeStrGadget (GPtr1,1,50,15,220,8,80,GFSet,
ActivationFlagSet{relVerify,stringCenter},ok);
GadgetBorder (GPtr1,-2,-2,223,11,FALSE,0,0,1);
GadgetText (GPtr1,-40,0,"Text",1,0);
SetStrGadget (GPtr1,Text);
(* 1. Farb-Gagdet *)
MakeStrGadget (GPtr2,2,110,29,16,8,2,GFSet,
ActivationFlagSet{relVerify,longint},ok);
GadgetBorder (GPtr2,-2,-2,19,11,FALSE,0,0,1);
GadgetText (GPtr2,-74,0,"frontPen",1,0);
f := LONGINT(FgdCol);
SetLongint (GPtr2,f);
(* 2. Farb-Gagdet *)
MakeStrGadget (GPtr3,3,250,29,16,8,2,GFSet,
ActivationFlagSet{relVerify,longint},ok);
GadgetBorder (GPtr3,-2,-2,19,11,FALSE,0,0,1);
GadgetText (GPtr3,-66,0,"backPen",1,0);
b := LONGINT(BgdCol);
SetLongint (GPtr3,b);
(* Center-Gagdet *)
MakeBoolGadget (GPtr4,4,35,45,55,10,GFSet,
ActivationFlagSet{relVerify},ok);
GadgetBorder (GPtr4,-2,-2,58,13,TRUE,2,1,1);
GadgetText (GPtr4,2,1,"Center",1,0);
(* Position-Gagdet *)
MakeBoolGadget (GPtr5,5,200,45,70,10,GFSet,
ActivationFlagSet{relVerify},ok);
GadgetBorder (GPtr5,-2,-2,73,13,TRUE,2,1,1);
GadgetText (GPtr5,3,1,"Position",1,0);
ok := ActivateGadget (GPtr1,WPtr1,NIL);
REPEAT (* auf Reaktion warten *)
WaitForGadget (class,ID,GP); (* Auf Reaktion warten *)
CASE ID OF
| 1 : ok := ActivateGadget (GPtr2,WPtr1,NIL);
| 2 : ok := ActivateGadget (GPtr3,WPtr1,NIL);
ELSE
END; (*CASE*)
UNTIL (ID = 4) OR (ID = 5) OR (closeWindow IN class);
(* Auswertung *)
ReadStrGadget (GPtr1,Text); (* Text auslesen *)
ReadLongint (GPtr2,f); (* Farben auslesen *)
ReadLongint (GPtr3,b);
FgdCol := INTEGER(f); BgdCol := INTEGER(b);
IF (closeWindow IN class) THEN (* = CANCEL *)
change := FALSE;
ELSIF (ID = 4) THEN
change := TRUE; center := TRUE;
ELSE
change := TRUE; center := FALSE;
END; (*IF*)
DeleteGadget (GPtr1); DeleteGadget (GPtr2); DeleteGadget (GPtr3);
DeleteGadget (GPtr4); DeleteGadget (GPtr5);
CloseAll; (* Eingabe beendet *)
DefineWindow (WPtr);
SetMenu (WPtr);
END TextRequest;
(*--------------------------------------------------------------------------*)
PROCEDURE StrAttrRequest (VAR maxChars : INTEGER;
VAR AFlags : ActivationFlagSet;
VAR Borders : BorderType;
VAR change : BOOLEAN);
(* Abfrage neuer String-Gadget-Attribute *)
VAR WDef : NewWindow;
GPtr1, GPtr2 : GadgetPtr;
GPtr3, GPtr4 : GadgetPtr;
GPtr5, GP : GadgetPtr;
IText : IntuiText;
class : IDCMPFlagSet;
ID : INTEGER;
ok : BOOLEAN;
xVal, yVal : CARDINAL;
Wert : LONGINT;
BEGIN
(* Menu aus *)
ClearMenu (WPtr);
(* Abfrage-Window aufbauen *)
WITH WDef DO
leftEdge := 170; topEdge := 100; width := 300; height := 95;
detailPen := 0; blockPen := 1;
idcmpFlags := IDCMPFlagSet{gadgetUp,closeWindow};
flags := WindowFlagSet{windowDrag,windowClose,activate};
firstGadget := NIL; checkMark := NIL;
title := ADR("Modify String-Gadget:");
screen := SPtr; bitMap := NIL;
type := customScreen;
END; (*WITH*)
WPtr1 := OpenWindow (WDef);
Assert (WPtr1 # NIL,ADR("Error opening Requester-Window"));
DefineWindow (WPtr1);
(* Gadgets einbauen *)
(* TextLength-Gadget *)
MakeStrGadget (GPtr1,1,150,15,32,8,3,GFSet,
ActivationFlagSet{longint},ok);
GadgetBorder (GPtr1,-2,-2,35,11,FALSE,0,0,1);
GadgetText (GPtr1,-128,0,"Max. Textlength",1,0);
SetLongint (GPtr1,LONGINT(maxChars));
(* String/Longint-Gadget *)
MakeBoolGadget (GPtr2,2,150,30,40,8,GFSet,
ActivationFlagSet{relVerify},ok);
GadgetBorder (GPtr2,-2,-2,43,11,FALSE,0,0,1);
IF (longint IN AFlags) THEN
GadgetText (GPtr2,50,1,"Longint",1,0);
ELSE
GadgetText (GPtr2,50,1,"String ",1,0);
END; (*IF*)
WITH IText DO
frontPen := 1; backPen := 0; drawMode := jam2;
leftEdge := 0; topEdge := 0; iTextFont := NIL;
iText := ADR("Type of Gadget:"); nextText := NIL;
END; (*WITH*)
PrintIText (WPtr1^.rPort,ADR(IText),20,30);
(* String-Ausrichtungs-Gadget *)
MakePropGadget (GPtr3,3,100,45,80,10,ActivationFlagSet{relVerify},
PropTypeSet{Horiz},3,0,ok);
GadgetText (GPtr3,-80,2,"Alignment",1,0);
IF (stringCenter IN AFlags) THEN
SetPropGadget(GPtr3,1,0);
ELSIF (stringRight IN AFlags) THEN
SetPropGadget(GPtr3,2,0);
ELSE
SetPropGadget(GPtr3,0,0);
END; (*IF*)
WITH IText DO
frontPen := 1; backPen := 0; drawMode := jam2;
leftEdge := 0; topEdge := 0; iTextFont := NIL;
iText := ADR(" Le Ce Ri "); nextText := NIL;
END; (*WITH*)
PrintIText (WPtr1^.rPort,ADR(IText),100,57);
(* Rahmen-Gadget *)
MakePropGadget (GPtr4,4,100,70,80,10,ActivationFlagSet{relVerify},
PropTypeSet{Horiz},3,0,ok);
GadgetText (GPtr4,-80,2,"Border",1,0);
IF (Borders = Single) THEN
SetPropGadget(GPtr4,1,0);
ELSIF (Borders = Double) THEN
SetPropGadget(GPtr4,2,0);
ELSE
SetPropGadget(GPtr4,0,0);
END; (*IF*)
WITH IText DO
frontPen := 1; backPen := 0; drawMode := jam2;
leftEdge := 0; topEdge := 0; iTextFont := NIL;
iText := ADR(" No Si Do "); nextText := NIL;
END; (*WITH*)
PrintIText (WPtr1^.rPort,ADR(IText),100,82);
(* OK-Gadget *)
MakeBoolGadget (GPtr5,5,230,75,50,10,GFSet,
ActivationFlagSet{relVerify},ok);
GadgetText (GPtr5,17,1,"OK",1,0);
GadgetBorder (GPtr5,-2,-2,53,13,TRUE,2,1,1);
(* Warten auf Meldungen *)
REPEAT
WaitForGadget (class,ID,GP);
IF (ID = 2) THEN (* String/Longint *)
IF (longint IN AFlags) THEN
EXCL (AFlags,longint);
GadgetText (GPtr2,50,1,"String ",1,0);
ELSE
INCL (AFlags,longint);
GadgetText (GPtr2,50,1,"Longint",1,0);
END; (*IF*)
ELSIF (ID = 3) OR (ID = 4) THEN
ReadPropGadget (GP,xVal,yVal);
SetPropGadget (GP,xVal,yVal);
END; (*IF*)
UNTIL (ID = 5) OR (closeWindow IN class);
IF (closeWindow IN class) THEN
change := FALSE
ELSE
ReadLongint (GPtr1,Wert); maxChars := INTEGER(Wert);
ReadPropGadget (GPtr3,xVal,yVal);
IF (xVal = 0) THEN
EXCL (AFlags,stringCenter);
EXCL (AFlags,stringRight);
ELSIF (xVal = 1) THEN
INCL (AFlags,stringCenter);
EXCL (AFlags,stringRight);
ELSE
EXCL (AFlags,stringCenter);
INCL (AFlags,stringRight);
END; (*IF*)
ReadPropGadget (GPtr4,xVal,yVal);
IF (xVal = 0) THEN
Borders := No;
ELSIF (xVal = 1) THEN
Borders := Single;
ELSE
Borders := Double;
END; (*IF*)
change := TRUE;
END; (*IF*)
DeleteGadget (GPtr1); DeleteGadget (GPtr2); DeleteGadget (GPtr3);
DeleteGadget (GPtr4); DeleteGadget (GPtr5);
CloseAll;
DefineWindow (WPtr);
SetMenu (WPtr);
END StrAttrRequest;
(*--------------------------------------------------------------------------*)
PROCEDURE BoolAttrRequest (VAR AFlags : ActivationFlagSet;
VAR Borders : BorderType;
VAR change : BOOLEAN);
(* Abfrage neuer Boolean-Gadget-Attribute *)
VAR WDef : NewWindow;
GPtr1, GPtr2 : GadgetPtr;
GPtr3, GP : GadgetPtr;
IText : IntuiText;
ok : BOOLEAN;
class : IDCMPFlagSet;
ID : INTEGER;
xVal,yVal : CARDINAL;
BEGIN
(* Menu aus *)
ClearMenu (WPtr);
(* Abfrage-Window aufbauen *)
WITH WDef DO
leftEdge := 170; topEdge := 100; width := 300; height := 70;
detailPen := 0; blockPen := 1;
idcmpFlags := IDCMPFlagSet{gadgetUp,closeWindow};
flags := WindowFlagSet{windowDrag,windowClose,activate};
firstGadget := NIL; checkMark := NIL;
title := ADR("Modify Boolean-Gadget:");
screen := SPtr; bitMap := NIL;
type := customScreen;
END; (*WITH*)
WPtr1 := OpenWindow (WDef);
Assert (WPtr1 # NIL,ADR("Error opening Requester-Window"));
DefineWindow (WPtr1);
(* Gadgets einbauen *)
(* Normal/ToggleSelect - Gadget *)
MakeBoolGadget (GPtr1,1,150,15,40,15,GFSet,
ActivationFlagSet{relVerify},ok);
GadgetBorder (GPtr1,-2,-2,43,18,FALSE,0,0,1);
IF (toggleSelect IN AFlags) THEN
GadgetText (GPtr1,50,5,"ToggleSelect",1,0);
ELSE
GadgetText (GPtr1,50,5,"Normal ",1,0);
END; (*IF*)
WITH IText DO
frontPen := 1; backPen := 0; drawMode := jam2;
leftEdge := 0; topEdge := 0; iTextFont := NIL;
iText := ADR("Type of Gadget:"); nextText := NIL;
END; (*WITH*)
PrintIText (WPtr1^.rPort,ADR(IText),20,20);
(* Border-Gadget *)
MakePropGadget (GPtr2,2,80,40,80,10,ActivationFlagSet{relVerify},
PropTypeSet{Horiz},3,0,ok);
GadgetText (GPtr2,-60,2,"Border:",1,0);
IF (Borders = Single) THEN
SetPropGadget(GPtr2,1,0);
ELSIF (Borders = Double) THEN
SetPropGadget(GPtr2,2,0);
ELSE
SetPropGadget(GPtr2,0,0);
END; (*IF*)
(* Text darstellen *)
WITH IText DO
frontPen := 1; backPen := 0; drawMode := jam2;
leftEdge := 0; topEdge := 0; iTextFont := NIL;
iText := ADR(" No Si Do "); nextText := NIL;
END; (*WITH*)
PrintIText (WPtr1^.rPort,ADR(IText),80,52);
(* OK-Gadget *)
MakeBoolGadget (GPtr3,3,230,50,50,10,GFSet,
ActivationFlagSet{relVerify},ok);
GadgetText (GPtr3,17,1,"OK",1,0);
GadgetBorder (GPtr3,-2,-2,53,13,TRUE,2,1,1);
REPEAT
WaitForGadget (class, ID, GP);
IF (ID = 1) THEN
IF (toggleSelect IN AFlags) THEN
EXCL (AFlags,toggleSelect);
GadgetText (GPtr1,50,5,"Normal ",1,0);
ELSE
INCL (AFlags,toggleSelect);
GadgetText (GPtr1,50,5,"ToggleSelect",1,0);
END; (*IF*)
ELSIF (ID = 2) THEN
ReadPropGadget (GP,xVal,yVal);
SetPropGadget (GP,xVal,yVal);
END; (*IF*)
UNTIL (ID = 3) OR (closeWindow IN class);
IF (closeWindow IN class) THEN
change := FALSE
ELSE
ReadPropGadget (GPtr2,xVal,yVal);
IF (xVal = 0) THEN
Borders := No;
ELSIF (xVal = 1) THEN
Borders := Single;
ELSE
Borders := Double;
END; (*IF*)
change := TRUE;
END; (*IF*)
DeleteGadget (GPtr1); DeleteGadget (GPtr2); DeleteGadget (GPtr3);
CloseAll;
DefineWindow (WPtr);
SetMenu (WPtr);
END BoolAttrRequest;
(*--------------------------------------------------------------------------*)
PROCEDURE FileNameRequest (VAR Filename : ARRAY OF CHAR;
VAR change : BOOLEAN);
(* Abfragen eines Filenamens *)
VAR WDef : NewWindow;
GPtr, GP : GadgetPtr;
ok : BOOLEAN;
class : IDCMPFlagSet;
ID : INTEGER;
BEGIN
(* Menu aus *)
ClearMenu (WPtr);
(* Abfrage-Window mit String-Gadget aufbauen *)
WITH WDef DO
leftEdge := 170; topEdge := 100; width := 315; height := 30;
detailPen := 0; blockPen := 1;
idcmpFlags := IDCMPFlagSet{gadgetUp,closeWindow};
flags := WindowFlagSet{windowDrag,windowClose,activate};
firstGadget := NIL; checkMark := NIL;
title := ADR("Enter Modulename without Extension");
screen := SPtr; bitMap := NIL;
type := customScreen;
END; (*WITH*)
WPtr1 := OpenWindow (WDef);
DefineWindow (WPtr1);
Assert (WPtr1 # NIL,ADR("Error opening Requester-Window"));
(* Abfrage-Gadgets einbauen: *)
(* Text-Gadget *)
MakeStrGadget (GPtr,1,80,15,200,8,80,GFSet,
ActivationFlagSet{relVerify},ok);
GadgetBorder (GPtr,-2,-2,203,11,FALSE,0,0,1);
GadgetText (GPtr,-70,0,"Filename",1,0);
SetStrGadget (GPtr,Filename);
ok := ActivateGadget (GPtr,WPtr1,NIL);
REPEAT
WaitForGadget (class,ID,GP);
UNTIL (ID = 1) OR (closeWindow IN class);
IF (ID = 1) THEN
ReadStrGadget (GPtr,Filename); (* Text auslesen *)
change := TRUE
ELSE
change := FALSE
END;
DeleteGadget (GPtr);
CloseAll;
DefineWindow (WPtr);
SetMenu (WPtr);
END FileNameRequest;
(*--------------------------------------------------------------------------*)
PROCEDURE Request (Text : ADDRESS) : BOOLEAN;
(* Allgemeiner Requester für OK/CANCEL-Abfrage.
Text : darzustellender Text
Ergebnis: TRUE - OK; FALSE - CANCEL
*)
VAR WDef : NewWindow;
IText : IntuiText;
GPtr1 : GadgetPtr;
GPtr2, GP : GadgetPtr;
ok : BOOLEAN;
class : IDCMPFlagSet;
ID : INTEGER;
BEGIN
(* Menu aus *)
ClearMenu (WPtr);
(* Abfrage-Window mit String-Gadget aufbauen *)
WITH WDef DO
leftEdge := 170; topEdge := 100; width := 320; height := 40;
detailPen := 0; blockPen := 1;
idcmpFlags := IDCMPFlagSet{gadgetUp,closeWindow};
flags := WindowFlagSet{windowDrag,windowClose,activate};
firstGadget := NIL; checkMark := NIL;
title := ADR("GadgetEd");
screen := SPtr; bitMap := NIL;
type := customScreen;
END; (*WITH*)
WPtr1 := OpenWindow (WDef);
DefineWindow (WPtr1);
Assert (WPtr1 # NIL,ADR("Error opening Requester-Window"));
(* Abfrage-Gadgets einbauen: *)
(* OK-Gadget *)
MakeBoolGadget (GPtr1,1,30,25,60,9,GFSet,
ActivationFlagSet{relVerify},ok);
GadgetText (GPtr1,22,1,"OK",1,0);
GadgetBorder (GPtr1,-2,-2,63,12,TRUE,2,1,1);
(* CANCEL-Gadget *)
MakeBoolGadget (GPtr2,2,230,25,60,9,GFSet,
ActivationFlagSet{relVerify},ok);
GadgetText (GPtr2,6,1,"CANCEL",1,0);
GadgetBorder (GPtr2,-2,-2,63,12,TRUE,2,1,1);
(* Text darstellen *)
WITH IText DO
frontPen := 1; backPen := 0; drawMode := jam2;
leftEdge := 0; topEdge := 0; iTextFont := NIL;
iText := Text; nextText := NIL;
END; (*WITH*)
PrintIText (WPtr1^.rPort,ADR(IText),10,11);
WaitForGadget (class,ID,GP);
DeleteGadget (GPtr1); DeleteGadget (GPtr2);
CloseAll;
DefineWindow (WPtr);
SetMenu (WPtr);
IF (ID = 1) THEN
RETURN TRUE
ELSE
RETURN FALSE
END;
END Request;
(*--------------------------------------------------------------------------*)
BEGIN
TermProcedure (CloseAll); (* für Fehlerfall *)
WPtr1 := NIL;
END Requester.